// uni-id-cf/index.js
const db = uniCloud.database();
const bcrypt = require('bcryptjs');

exports.main = async (event, context) => {
  const { action, params } = event;
  
  if (action === 'login') {
    const { username, password } = params;
    
    // 1. 查询用户
    const userRes = await db.collection('users')
      .where({ username })
      .get();
    
    // 2. 验证用户是否存在
    if (!userRes.data.length) {
      return { code: -1, msg: '用户不存在' };
    }
    
    const user = userRes.data[0];
    
    // 3. 安全验证密码（使用bcrypt比对）
    const passwordMatch = await bcrypt.compare(password, user.password);
    
    if (!passwordMatch) {
      return { code: -2, msg: '密码错误' };
    }
    
    // 4. 生成token（根据实际需求实现）
    const token = generateUserToken(user);
    
    return {
      code: 0,
      msg: '登录成功',
      token,
      userInfo: {
        _id: user._id,
        username: user.username,
        avatar: user.avatar
      }
    };
  }
  
  return { code: -100, msg: '未知操作' };
};

// 生成token的示例函数（实际使用uni-id的标准方法）
function generateUserToken(user) {
  // 这里应使用uni-id的token管理机制
  return 'generated-token-' + user._id;
}